// package com.cw.lang.common.framework.inteceptor;
//
// import java.lang.reflect.Method;
//
// import javax.servlet.http.HttpServletRequest;
// import javax.servlet.http.HttpServletResponse;
//
// import org.springframework.core.Ordered;
// import org.springframework.core.annotation.Order;
// import org.springframework.web.method.HandlerMethod;
// import org.springframework.web.servlet.HandlerInterceptor;
//
// import lombok.extern.slf4j.Slf4j;
//
// /**
//  * @author chenw
//  * @version $$Id: InOutLoggingMvcHandlerInterceptor.java, v 0.1 2018/12/27 2:06 PM chenw Exp $$
//  */
// @Slf4j
// @Order(Ordered.HIGHEST_PRECEDENCE + 800)
// public class InOutLoggingMvcHandlerInterceptor implements HandlerInterceptor {
//
//     @Override
//     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
//         if (handler instanceof HandlerMethod) {
//             HandlerMethod handlerMethod = (HandlerMethod) handler;
//             Method method = handlerMethod.getMethod();
//             log.info("========= {}#{}服务请求开始 =========", method.getDeclaringClass()
//                 .getSimpleName(), method.getName());
//         }
//         return true;
//     }
//
//     @Override
//     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
//         Exception ex) {
//         if (handler instanceof HandlerMethod) {
//             HandlerMethod handlerMethod = (HandlerMethod) handler;
//             Method method = handlerMethod.getMethod();
//             if (ex == null) {
//                 log.info("========= {}#{}服务请求结束 =========", method.getDeclaringClass()
//                     .getSimpleName(), method.getName());
//             } else {
//
//                 log.info("========= {}#{}服务请求由于抛出异常而结束 =========", method.getDeclaringClass()
//                     .getSimpleName(), method.getName());
//             }
//         }
//     }
// }
